package com.lzh.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lzh.template.common.BaseResponse;
import com.lzh.template.model.dto.chart.AddChartDto;
import com.lzh.template.model.dto.chart.EditChartDto;
import com.lzh.template.model.dto.chart.GenChartByAIDto;
import com.lzh.template.model.dto.chart.QueryChartDto;
import com.lzh.template.model.entity.ChartEntity;
import com.lzh.template.model.vo.PageVo;
import com.lzh.template.model.vo.chart.GenChartVo;
import org.springframework.web.multipart.MultipartFile;


/**
 * (LzhChart)表服务接口
 *
 * @author luzhiheng
 * @since 2023-12-29 10:47:18
 */
public interface ChartService extends IService<ChartEntity> {

    /**
     * 分页查询图表
     * @param dto
     * @return
     */
    BaseResponse<PageVo> queryChartPage(QueryChartDto dto);

    /**
     * 添加图表
     * @param dto
     */
    void addChart(AddChartDto dto);

    /**
     * 删除图表
     * @param id
     */
    void deleteChart(Long id);

    /**
     * 编辑图表
     * @param dto
     */
    void editChart(EditChartDto dto);

    /**
     * 根据AI生成图表
     * @param file
     * @param dto
     * @return
     */
    BaseResponse<GenChartVo> genChartByAI(MultipartFile file, GenChartByAIDto dto);
}

